home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / BASIC / 0006.ZIP / COVER.ASM < prev    next >
Assembly Source File  |  1983-06-15  |  2KB  |  96 lines

  1.     TITLE    COVER    - Diskette Contents List - Main    Module
  2.     SUBTTL    Version    1.0 - June 1983
  3.     PAGE    81,132
  4. ;
  5. ;                  ********************
  6. ;                  *       DD Systems     *
  7. ;                  ********************
  8. ;
  9. CODE    SEGMENT    PARA PUBLIC 'CODE'
  10.     ASSUME    CS:CODE,DS:CODE
  11. ;
  12.     EXTRN    RESTR:BYTE
  13.     EXTRN    DOPRT:NEAR
  14. ;
  15.     ORG    100H
  16. BEGIN:    JMP    START
  17. ;
  18.     PUBLIC    VERS
  19. ;
  20. VERS    DB    0            ;DOS Version flag
  21. DDRV    DB    0            ;Default drive at entry
  22. NDRV    DB    0            ;Number    of drives in system
  23. PRMT    DB    13,10,'Enter drive to list (Esc to quit): $'
  24. ERMSG1    DB    13,10,'Invalid drive$'
  25. SETPRT    DB    27,'0',27,'C',44,15,0    ;Set 1/8" 132 character
  26. RESPRT    DB    27,64,0            ;Restore to power up status
  27. ;
  28.     EXTRN    GETTTL:NEAR,GETFRE:NEAR,SCAN:NEAR
  29.     EXTRN    SORT:NEAR,PRINT:NEAR
  30.     EXTRN    PSX:BYTE
  31. ;
  32. START    PROC    NEAR
  33.     MOV    DX,OFFSET SETPRT
  34.     CALL    DOPRT            ;Set printer
  35.     MOV    AH,30H
  36.     INT    21H            ;Check DOS Version
  37.     OR    AL,AL
  38.     JZ    NOTTWO            ;V1.x
  39.     DEC    AL            ;V2.0
  40. NOTTWO:    MOV    VERS,AL            ;Save DOS flag
  41.     MOV    AH,19H
  42.     INT    21H            ;Get default drive
  43.     MOV    DDRV,AL            ;  and save
  44.     MOV    DL,AL
  45.     MOV    AH,0EH
  46.     INT    21H            ;Get number of drives
  47.     MOV    NDRV,AL            ;  and save
  48. ;
  49. ;    Start of main loop
  50. ;
  51. MLOOP:    MOV    DX,OFFSET PRMT        ;Prompt    for drive
  52.     MOV    AH,9
  53.     INT    21H
  54.     MOV    AH,1
  55.     INT    21H            ;Get user response
  56.     CMP    AL,1BH            ;Check for exit
  57.     JE    QUIT            ;He's done, so get off
  58.     OR    AL,' '            ;Force lower case
  59.     SUB    AL,'a'-1        ;Compute drive number
  60.     JNC    DRVOK            ;May be    valid drive
  61. ERR1:    MOV    DX,OFFSET ERMSG1    ;Invalid drive message
  62.     MOV    AH,9
  63.     INT    21H            ;Error message out
  64.     JMP    MLOOP
  65. DRVOK:    CMP    AL,NDRV            ;Check for installed drive
  66.     JA    ERR1            ;Drive not installed
  67.     DEC    AL
  68.     MOV    DL,AL
  69.     MOV    AH,0EH
  70.     INT    21H            ;Make selected drive default
  71.     CALL    GETTTL            ;Get title
  72.     CALL    GETFRE            ;Get free space
  73.     CALL    SCAN            ;Load directory    entries
  74.     CALL    SORT            ;Sequence directory entries
  75.     CALL    PRINT            ;Produce listing
  76.     JMP    MLOOP
  77. ;
  78. QUIT:    MOV    DL,12
  79.     MOV    AH,2
  80.     INT    21H            ;Force page restore
  81.     MOV    DL,DDRV            ;Load entry default drive
  82.     MOV    AH,0EH
  83.     INT    21H            ;Restore default
  84.     TEST    PSX,1
  85.     JZ    NOREST
  86.     MOV    DX,OFFSET RESTR
  87.     CALL    DOPRT            ;Restore page
  88. NOREST:    MOV    DX,OFFSET RESPRT
  89.     CALL    DOPRT            ;Reset printer
  90.     INT    20H            ;  and exit
  91. START    ENDP
  92. ;
  93. CODE    ENDS
  94. ;
  95.     END    BEGIN
  96.